package com.ys.nms.module.business.dal.dataobject.processors;

import com.ys.nms.framework.mybatis.core.dataobject.BaseSlaveDO;
import com.ys.nms.framework.tenant.core.aop.TenantIgnore;
import com.ys.nms.module.business.dal.dataobject.storage.StorageDO;
import lombok.*;
import java.util.*;
import com.baomidou.mybatisplus.annotation.*;
import com.ys.nms.framework.mybatis.core.dataobject.BaseDO;

/**
 * 处理器 DO
 *
 * @author 超级管理员
 */
@TableName("processors")
@KeySequence("processors_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TenantIgnore
public class ProcessorsDO extends BaseSlaveDO {

    /**
     * ID
     */
    @TableId
    private Integer processorId;
    /**
     * 关联设备物理实体的 SNMP 索引（来自 ENTITY-MIB），用于定位具体硬件组件（如 CPU 插槽）。
     */
    @TableField(value = "entPhysicalIndex")
    private Integer entPhysicalIndex;
    /**
     * 关联到主机资源管理 MIB（HOST-RESOURCES-MIB）的设备索引，用于标识设备的硬件资源。
     */
    @TableField(value = "hrDeviceIndex")
    private Integer hrDeviceIndex;
    /**
     * 设备ID
     */
    private Integer deviceId;
    /**
     * 获取处理器信息的 SNMP OID（对象标识符），用于动态采集数据。
     */
    private String processorOid;
    /**
     * 处理器在设备中的索引标识（如 SNMP 索引），用于区分同一设备的不同处理器或核心。
     */
    private String processorIndex;
    /**
     * 处理器的类型（如 cpu
     */
    private String processorType;
    /**
     * 当前处理器的使用率（百分比，整数形式，如 75	 表示 75%）。
     */
    private Integer processorUsage;
    /**
     * 处理器的描述信息（如 "Intel(R) Xeon(R) CPU" 或 "Hyper-V Virtual Processor"），便于识别具体硬件。
     */
    private String processorDescr;
    /**
     * 数据精度或单位倍数（例如：1	 表示直接使用原始值，100	 表示将值除以 100），用于数值换算。
     */
    private Integer processorPrecision;
    /**
     * 处理器使用率的告警阈值（默认 75%	），超过此值时触发告警（如邮件或短信通知）。
     */
    private Integer processorPercWarn;


}
